$Description$
给出$n$个点$m$条边的图,每条边找一个配对的点,要求边$(u,v)$配对的点是$u$或$v,$且每个点最多只能被一条边配对,求不同方案数
$ps:$题面的翻译不太准确,上面的翻译来自讨论,并稍加补充
$Solution$
先给出一组$hack$数据
1 | input: |
有好几篇题解会被$hack,$原因是没有判在一个联通块中边数大于点数的情况
我们先$dfs$找出每个联通块,并算出这个联通块中的点数$po$与边数$ed,$然后分类讨论,最后利用乘法原理乘起来
$1.po>ed:$由于是联通块,所以只能是$po=ed+1$,即是一棵树。这种情况下我们在$po$个点中找$ed$个点去匹配,无论怎么选都是合法的,所以贡献即是$C_{po}^{ed}=C_{po}^{po-1}=po$
$2.po==ed:$即一个环的情况,只有顺时针选和逆时针选两种情况,所以贡献即是$2$
$3.po<ed:$这种情况下无论怎么选都不合法,所以贡献为$0$
$Code$
1 |
|